package com.geotmt.billingcenter.modules.consume.service;

import com.geotmt.billingcenter.common.entry.ConsumeBaseEntry;
import com.geotmt.billingcenter.common.vo.consume.ConsumeHisVo;
import com.geotmt.billingcenter.common.vo.consume.ConsumeVo;
import com.geotmt.billingcenter.common.vo.params.ParamsConsume;
import com.geotmt.billingcenter.common.vo.params.ParamsForDel;

import java.util.List;

/**
 * @Description 最新消耗的 基本信息
 * @Author      yanghanwei
 * @Mail        yanghanwei@geotmt.com
 * @Date        2019/3/13 10:34
 * @Version     v1
 **/
public interface ConsumeBaseService {

    /**
     * 添加消耗规则配置 base
     * @param consumeBase
     * @return
     */
    Integer addBase(ConsumeBaseEntry consumeBase);

    /**
     * 修改 base
     * feeFlag  updateUserId updateTime
     * @param consumeVo
     * @return
     */
    int updateBase(ConsumeVo consumeVo);

    /**
     * 删除 消耗配置 base (逻辑删除)
     * @param obj
     * @return
     */
    int deleteBase(ParamsForDel obj);

    /**
     * 消耗 list
     * @param obj
     * @return
     */
    List<ConsumeVo> listCurr(ParamsConsume obj);

    /**
     * 添加或修改的回显
     * @param paramsConsume
     * @return
     */
    List<ConsumeVo> listAll(ParamsConsume paramsConsume);

    /**
     * getById
     * @param id
     * @return
     */
    ConsumeVo currGetById(Integer id);

    /**
     * 获取当前有效的规则
     * @param code
     * @param companyId
     * @param cuserId
     * @param interfaceId
     * @param date
     * @return
     */
    ConsumeHisVo getConsume(String code, Integer companyId, Integer cuserId, Integer interfaceId, String date);

}
